#ifndef MOUSEEVENT_H_
#define MOUSEEVENT_H_

#include "Point2d.h"
#include <SDL.h>

namespace Lame3d
{
	class MouseClickEvent
	{
		public:
			MouseClickEvent(const SDL_MouseButtonEvent *evt, const Point2d &mLoc);
			~MouseClickEvent();
			
			const Point2d& Location() const;
		
			int Button() const;
			bool LeftButton() const;
			bool RightButton() const;
			bool MiddleButton() const;
			
			bool Pressed() const;
			
		protected:
			int button;
			bool pressed;
			Point2d loc;
	};
	
	class MouseMotionEvent
	{
		public:
			MouseMotionEvent(const Point2d &mLoc, const Point2d &mot, bool edgeX=false, bool edgeY=false);
			~MouseMotionEvent();
			
			const Point2d& Location() const;
			const Point2d& Motion() const;
			bool EdgeX() const;
			bool EdgeY() const;
						
		protected:
			Point2d loc;
			Point2d motion;
			bool edgeX;
			bool edgeY;
	};
}

#endif /*MOUSEEVENT_H_*/
